1. Field of the Invention
The present invention relates to apparatus and methods used in data processing systems to exchange data among files when the files are organized differently and employ different techniques to represent the data.
2. Description of the Prior Art
Files are used in data processing systems for the permanent storage of data. Many different ways of organizing files exist in the prior art. For example, a file may be organized as a set of records, and data accessed by specifying the record. Further, a file may be organized as a sequence of bytes, any one of which may be specified, as a sequence of lines, any one of which may be specified, or as a stream, i.e., having a beginning and end, but no particular internal structure. Moreover, the physical organization of a file may be different from its logical organization. For example, in some spread sheet files, the row and column organization of the file is specified not by the order of the records in the spread sheet file, but rather by coordinates contained in the record.
In addition to differing in the manner in which they are organized, files also differ in the manner in which they represent the data they contain. In some files, both numeric and non-numeric values appear as sequences of character codes., in others, numeric values may have special representations. In some cases, the kind of representation depends on the type of numeric value so that fixed decimal values are represented differently from integer values or floating point values. All files which employ a given form of organization and given representations of the data are regarded as having the same file type.
The fact that files ma have different types has made the exchange of data between files difficult. For example, a user of a data processing system may have value which he wishes to incorporate in a document in a spreadsheet; however, because the document file and the spreadsheet file have different types, the user cannot simply incorporate the portion of the spreadsheet containing the desired values into his document. As data processing systems become more widespread, as the number of file types and applications increase, and as the degree of interconnection grows, the need grows for apparatus and techniques which make data exchange between files having different types easier.
In the prior art, the data exchange problem has been generally solved in two ways: first, special data exchange programs have been built to exchange data between files of two specific types. Second, intermediate file types have been developed, and exchange between files of two specific types is done by employing a first data exchange program to exchange data between the file of the first type and a file of the intermediate type and a second data exchange program to exchange data between the file of the intermediate type and the file of the second type.
Neither of the prior art approaches to data exchange is completely satisfactory. With special data exchange programs, there are two problems: first, there must be a separate program for each pair of file types, and the number of special data exchange programs necessary proliferates rapidly as the number of file types increases. Second, the writer of such a program must understand the details of both of the file types between which data is to be exchanged. With data exchange by means of intermediate files, the problems are the following: first, no single intermediate file type has evolved. Instead, intermediate file types have proliferated in the same fashion as other file types and much of the advantage of the intermediate file approach has been lost. Second, as might be expected from the proliferation of intermediate file types, a given intermediate file type is generally advantageous for some data exchanges and not for others. Thus, intermediate file types which are good for exchanges involving files containing documents are not good for exchanges involving spread sheet files and vice-versa. There is thus a need in the art for improved apparatus and methods for exchanging data between files having different types. The invention described hereinbelow provides such apparatus and methods.